;
(function($) {
/**
 * jqGrid extension for manipulating columns properties
 * Piotr Roznicki roznicki@o2.pl
 * http://www.roznicki.prv.pl
 * Dual licensed under the MIT and GPL licenses:
 * http://www.opensource.org/licenses/mit-license.php
 * http://www.gnu.org/licenses/gpl.html
**/
    $.fn.extend({
            setColumns: function(p) {
                p = $.extend({
                        top: 0,
                        left: 0,
                        width: 200,
                        height: 195,
                        modal: false,
                        drag: true,
                        closeicon: 'ico-close.gif',
                        beforeShowForm: null,
                        afterShowForm: null,
                        afterSubmitForm: null
                    }, $.jgrid.col, p || {  });
                return this.each(function() {
                    var $t = this;
                    if (!$t.grid) {
                        return;
                    }
                    var onBeforeShow = typeof p.beforeShowForm === 'function' ? true : false;
                    var onAfterShow = typeof p.afterShowForm === 'function' ? true : false;
                    var onAfterSubmit = typeof p.afterSubmitForm === 'function' ? true : false;
                    if (!p.imgpath) {
                        p.imgpath = $t.p.imgpath;
                    } // Added From Tony Tomov
                    var gID = $("table:first", $t.grid.bDiv).attr("id");
                    var IDs = { themodal: 'colmod' + gID, modalhead: 'colhd' + gID, modalcontent: 'colcnt' + gID };
                    var dtbl = "ColTbl_" + gID;
                    if ($("#" + IDs.themodal).html() != null) {
                        if (onBeforeShow) {
                            p.beforeShowForm($("#" + dtbl));
                        }
                        viewModal("#" + IDs.themodal, { modal: p.modal });
                        if (onAfterShow) {
                            p.afterShowForm($("#" + dtbl));
                        }
                    } else {
                        var tbl = $("<table id='" + dtbl + "' class='ColTable'><tbody></tbody></table>");
                        for (i = 0; i < this.p.colNames.length; i++) {
                            if (!$t.p.colModel[i].hidedlg) { // added from T. Tomov
                                $(tbl).append("<tr><td ><input type='checkbox' id='col_" + this.p.colModel[i].name + "' class='cbox' value='T' " +
                                    ((this.p.colModel[i].hidden == undefined) ? "checked" : "") + "/>" + "<label for='col_" + this.p.colModel[i].name + "'>" + this.p.colNames[i] + "(" + this.p.colModel[i].name + ")</label></td></tr>");
                            }
                        }
                        var bS = "<input id='dData' type='button' value='" + p.bSubmit + "'/>";
                        var bC = "<input id='eData' type='button' value='" + p.bCancel + "'/>";
                        $(tbl).append("<tr><td class='ColButton'>" + bS + "&nbsp;" + bC + "</td></tr>");
                        createModal(IDs, tbl, p, $t.grid.hDiv, $t.grid.hDiv);
                        if (p.drag) {
                            DnRModal("#" + IDs.themodal, "#" + IDs.modalhead + " td.modaltext");
                        }
                        $("#dData", "#" + dtbl).click(function(e) {
                            for (i = 0; i < $t.p.colModel.length; i++) {
                                if (!$t.p.colModel[i].hidedlg) { // added from T. Tomov
                                    if ($("#col_" + $t.p.colModel[i].name).attr("checked")) {
                                        $($t).showCol($t.p.colModel[i].name);
                                        $("#col_" + $t.p.colModel[i].name).attr("defaultChecked", true); // Added from T. Tomov IE BUG
                                    } else {
                                        $($t).hideCol($t.p.colModel[i].name);
                                        $("#col_" + $t.p.colModel[i].name).attr("defaultChecked", ""); // Added from T. Tomov IE BUG
                                    }
                                }
                            }
                            $("#" + IDs.themodal).jqmHide();
                            if (onAfterSubmit) {
                                p.afterSubmitForm($("#" + dtbl));
                            }
                            return false;
                        });
                        $("#eData", "#" + dtbl).click(function(e) {
                            $("#" + IDs.themodal).jqmHide();
                            return false;
                        });
                        if (onBeforeShow) {
                            p.beforeShowForm($("#" + dtbl));
                        }
                        viewModal("#" + IDs.themodal, { modal: p.modal });
                        if (onAfterShow) {
                            p.afterShowForm($("#" + dtbl));
                        }
                    }
                });
            }
        });
})(jQuery);